<html>
<head><meta charset="utf-8"><title>next steps · project-ffi-unwind · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/index.html">project-ffi-unwind</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html">next steps</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="189732827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189732827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189732827">(Mar 04 2020 at 20:42)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Sorry about the confusion regarding the meeting on Monday. How do you suggest we take our next steps? Should we attempt to schedule another meeting with the lang team?</p>



<a name="189799889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189799889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189799889">(Mar 05 2020 at 15:02)</a>:</h4>
<p><span class="user-mention" data-user-id="120076">@BatmanAoD (Kyle Strand)</span> my bad, too</p>



<a name="189799893"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189799893" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189799893">(Mar 05 2020 at 15:02)</a>:</h4>
<p>yeah, we ought to reschedule</p>



<a name="189799913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189799913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189799913">(Mar 05 2020 at 15:02)</a>:</h4>
<p>I am behind on scheduling meetings this month, it's been "a week"</p>



<a name="189799928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189799928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189799928">(Mar 05 2020 at 15:02)</a>:</h4>
<p>What were the weeks that worked well for unwind folks?</p>



<a name="189808020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808020">(Mar 05 2020 at 16:17)</a>:</h4>
<p>I'm away next week</p>



<a name="189808135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808135">(Mar 05 2020 at 16:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> We do have some notes from the meeting though: <a href="https://hackmd.io/rG_5ksyCTuKsjks5cHONZQ?view" target="_blank" title="https://hackmd.io/rG_5ksyCTuKsjks5cHONZQ?view">https://hackmd.io/rG_5ksyCTuKsjks5cHONZQ?view</a></p>



<a name="189808193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808193">(Mar 05 2020 at 16:19)</a>:</h4>
<p>Basically we decided that proposal 2 was strictly superior to proposal 1 (1&amp;2 are very similar).</p>



<a name="189808222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808222">(Mar 05 2020 at 16:19)</a>:</h4>
<p>So there's only 2 &amp; 3 left now.</p>



<a name="189808262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808262">(Mar 05 2020 at 16:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Thanks. I think we can just look back at the Doodle poll again: <a href="https://doodle.com/poll/d9xevh43spf6rx8n" target="_blank" title="https://doodle.com/poll/d9xevh43spf6rx8n">https://doodle.com/poll/d9xevh43spf6rx8n</a></p>
<p>Both the 16th and the 23rd would appear to work. <span class="user-mention" data-user-id="126931">@centril</span> <span class="user-mention" data-user-id="237472">@acfoltzer</span> has your availability changed since you filled in the poll?</p>



<a name="189808420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189808420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> acfoltzer <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189808420">(Mar 05 2020 at 16:21)</a>:</h4>
<p>Still good for me!</p>



<a name="189818490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189818490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189818490">(Mar 05 2020 at 17:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> The lang team already has that time reserved, correct? If so I think we can assume that Centril can make it on the 16th and just go ahead and schedule that as the new time.</p>



<a name="189818551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189818551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189818551">(Mar 05 2020 at 17:52)</a>:</h4>
<p>Also, should we publish another blog post, providing the new date and removing the proposal-1 entries from the table?</p>



<a name="189818712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189818712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189818712">(Mar 05 2020 at 17:54)</a>:</h4>
<p>I think we'll probably have a more productive meeting if we keep it small.</p>



<a name="189822706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822706">(Mar 05 2020 at 18:38)</a>:</h4>
<p>the 16th is good I think</p>



<a name="189822722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822722">(Mar 05 2020 at 18:38)</a>:</h4>
<p>let's do it</p>



<a name="189822736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822736">(Mar 05 2020 at 18:38)</a>:</h4>
<p>I'll review the notes, <span class="user-mention" data-user-id="143274">@Amanieu</span></p>



<a name="189822741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822741">(Mar 05 2020 at 18:38)</a>:</h4>
<p>I don't remember what is 1, 2, and 3</p>



<a name="189822761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822761">(Mar 05 2020 at 18:38)</a>:</h4>
<p>We won't have <span class="user-mention" data-user-id="239881">@Josh Triplett</span> I think</p>



<a name="189822773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822773">(Mar 05 2020 at 18:38)</a>:</h4>
<p>but that's inevitable</p>



<a name="189822774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822774">(Mar 05 2020 at 18:38)</a>:</h4>
<p>On the 16th?</p>



<a name="189822782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822782">(Mar 05 2020 at 18:39)</a>:</h4>
<p>since they're away for 4 weeks or something on vacation</p>



<a name="189822786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822786">(Mar 05 2020 at 18:39)</a>:</h4>
<p>Ah</p>



<a name="189822801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822801">(Mar 05 2020 at 18:39)</a>:</h4>
<p>Okay, I was slightly worried when you said "inevitable"!</p>



<a name="189822896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189822896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189822896">(Mar 05 2020 at 18:40)</a>:</h4>
<p>Niko, since you created the Zulip poll, can you "finalize" it?</p>



<a name="189823228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189823228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189823228">(Mar 05 2020 at 18:43)</a>:</h4>
<p>Yes</p>



<a name="189824308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189824308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189824308">(Mar 05 2020 at 18:55)</a>:</h4>
<p>Thanks.</p>



<a name="189824503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189824503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189824503">(Mar 05 2020 at 18:57)</a>:</h4>
<p>I'll post an announcement too</p>



<a name="189824512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189824512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189824512">(Mar 05 2020 at 18:57)</a>:</h4>
<p>I'm just trying to decide if we should have any other lang-team meetings</p>



<a name="189824523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189824523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189824523">(Mar 05 2020 at 18:57)</a>:</h4>
<p>full disclosure, I'm feeling a bit tired this month and lacking in enthusiasm :)</p>



<a name="189825062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189825062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189825062">(Mar 05 2020 at 19:03)</a>:</h4>
<p>Sorry to hear it; hope the rest of the month goes better for you! Or at least that April goes better...</p>



<a name="189825318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/189825318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#189825318">(Mar 05 2020 at 19:06)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/210922-project-ffi-unwind/topic/Next.20steps/near/189824503" title="#narrow/stream/210922-project-ffi-unwind/topic/Next.20steps/near/189824503">said</a>:</p>
<blockquote>
<p>I'll post an announcement too</p>
</blockquote>
<p>In <a class="stream" data-stream-id="213817" href="/#narrow/stream/213817-t-lang">#t-lang</a>?</p>



<a name="241575804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241575804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241575804">(Jun 04 2021 at 18:31)</a>:</h4>
<p>Hey all, I've been "drafted" by Till to help finish out implementing what's necessary for <code>C-unwind</code>. I talked with <span class="user-mention" data-user-id="327458">@katelyn martin</span> a bit, and I wanted to confirm what the final pieces are to implement in rustc. Hoping y'all can help me fill in gaps in my knowledge and let me know if anything is missing!</p>
<p>My impression of what's left is:</p>
<ul>
<li><a href="https://play.rust-lang.org/?version=nightly&amp;mode=release&amp;edition=2018&amp;gist=da889da2a16e0a1f4737ed23cdca76fe">bug 1</a> - functions defined in Rust as <code>extern "C"</code> are still marked <code>nounwind</code> on stable today, but they shouldn't be as a transitionary measure until this feature is fully implemented and stabilized</li>
<li><a href="https://play.rust-lang.org/?version=nightly&amp;mode=release&amp;edition=2018&amp;gist=6174bb7be51d731c2f4005e51d8cad63">bug 2</a> - when that's compiled with <code>-Cpanic=abort</code> everything is marked <code>nounwind</code>, but it shouldn't be, there should be a landing pad that aborts the process</li>
</ul>
<p>Is that right? If so that's hopefully not too much to tackle :)</p>
<p>One question I would have though is what the expected stabilization story for this feature is (or maybe that's still a TODO item). It looks like <code>#![feature(c_unwind)]</code> changes the behavior of the compiler, so if we were to stabilize it today it means that the same code would behave differently on nightly and on stable. Is this expected to be an issue? Or is it generally expected that we'll just stabilize the change in behavior and it's subtle enough that anyone affected can switch to nightly from the current stable?</p>



<a name="241579257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579257">(Jun 04 2021 at 19:00)</a>:</h4>
<p>Hey <span class="user-mention" data-user-id="116015">@Alex Crichton</span> !</p>



<a name="241579277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579277">(Jun 04 2021 at 19:00)</a>:</h4>
<p>I've not been following the bugs super closely, I imagine <span class="user-mention" data-user-id="120076">@BatmanAoD (Kyle Strand)</span> or <span class="user-mention" data-user-id="143274">@Amanieu</span> can confirm</p>



<a name="241579299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579299">(Jun 04 2021 at 19:00)</a>:</h4>
<p>but that sounds right</p>



<a name="241579369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579369">(Jun 04 2021 at 19:01)</a>:</h4>
<p>Regarding the stabilization story, we haven't talked <em>too</em> much about that. I think a nice thing would be if there is a pattern people can write that is correct on both nightly <em>and</em> stable</p>



<a name="241579379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579379">(Jun 04 2021 at 19:01)</a>:</h4>
<p>I'm not sure if that's true though!</p>



<a name="241579419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579419">(Jun 04 2021 at 19:01)</a>:</h4>
<p>but really the number of affected crates here is--afaik---fairly small</p>



<a name="241579430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579430">(Jun 04 2021 at 19:01)</a>:</h4>
<p>so I would guess we can work closely with them</p>



<a name="241579435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579435">(Jun 04 2021 at 19:01)</a>:</h4>
<p>post some blog posts</p>



<a name="241579440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579440">(Jun 04 2021 at 19:01)</a>:</h4>
<p>and make it through</p>



<a name="241579507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579507">(Jun 04 2021 at 19:02)</a>:</h4>
<p>actually <span class="user-mention" data-user-id="120076">@BatmanAoD (Kyle Strand)</span> do we have a canonical list? we should probably prep one :)</p>



<a name="241579514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579514">(Jun 04 2021 at 19:02)</a>:</h4>
<p>or write a PSA blog post to try and get people's attention</p>



<a name="241579520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579520">(Jun 04 2021 at 19:02)</a>:</h4>
<p>and have them contact us</p>



<a name="241579577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241579577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241579577">(Jun 04 2021 at 19:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/210922-project-ffi-unwind/topic/next.20steps/near/241579507">said</a>:</p>
<blockquote>
<p>actually <span class="user-mention silent" data-user-id="120076">BatmanAoD (Kyle Strand)</span> do we have a canonical list? we should probably prep one <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>
</blockquote>
<p>Hm... can we simply introduce a new GitHub issues tag for this?</p>



<a name="241580300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580300">(Jun 04 2021 at 19:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> Welcome to the project; thanks for stepping in! (Even if you were "voluntold"...)</p>
<p>For bug 2, the real complication, in my mind, is truly external functions. We want to guarantee that even if an exception enters the Rust runtime from C++ (or equivalent), the runtime is aborted. I have been assuming that this needs to be implemented via some sort of shim that would be linked in every callee instead of linking the actual external function.</p>



<a name="241580442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580442">(Jun 04 2021 at 19:10)</a>:</h4>
<p>oh I thought it would be as simple as just having an aborting landing pad for all function calls with an ABI that can unwind?</p>



<a name="241580503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580503">(Jun 04 2021 at 19:11)</a>:</h4>
<p>Oh, maybe! Yes, I think that would have the desired effect.</p>



<a name="241580590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580590">(Jun 04 2021 at 19:12)</a>:</h4>
<p>that may not catch <em>everything</em> since the personality may still filter stuff, but we could in theory adjust personalities at some point in the future to be a catch-all for C++ exceptions or something reasonable like that</p>



<a name="241580592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580592">(Jun 04 2021 at 19:12)</a>:</h4>
<p>So, in <code>abort=panic</code>, any function that _calls_ an <code>extern "C"</code> function would include a landing pad.</p>



<a name="241580613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580613">(Jun 04 2021 at 19:12)</a>:</h4>
<p>oh? I thought it was only calling <code>extern "C-unwind"</code>?</p>



<a name="241580632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580632">(Jun 04 2021 at 19:12)</a>:</h4>
<p>(in that <code>extern "C"</code> is an unsafe assertion that the function doesn't throw)</p>



<a name="241580651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580651">(Jun 04 2021 at 19:12)</a>:</h4>
<p>Er, right, sorry.</p>



<a name="241580720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580720">(Jun 04 2021 at 19:13)</a>:</h4>
<p>Sorry, I'm multitasking and should just wait to give you info until I have taken the time to restore my focus here!</p>



<a name="241580738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580738">(Jun 04 2021 at 19:13)</a>:</h4>
<p>lol no worries</p>



<a name="241580835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241580835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241580835">(Jun 04 2021 at 19:14)</a>:</h4>
<p>if the transition story is still a bit up in the air I don't mind helping out with that as well, and the known use cases relying on unwinding would be good to review for that as well (mostly for my own edification)</p>



<a name="241581282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241581282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241581282">(Jun 04 2021 at 19:19)</a>:</h4>
<p>We do have a feature where we abort when there's an unwind across <code>extern "C"</code> happening, though, don't we?</p>



<a name="241581515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241581515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241581515">(Jun 04 2021 at 19:21)</a>:</h4>
<p>yeah if <code>#![feature(c_unwind)]</code> is specified that's the main behavior change from stable</p>



<a name="241581576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241581576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241581576">(Jun 04 2021 at 19:22)</a>:</h4>
<p>e.g. the codegen for "bug 1" above changes if you add that feature gate (and this is what I figured was also a question about the transition story)</p>



<a name="241581931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241581931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241581931">(Jun 04 2021 at 19:25)</a>:</h4>
<p>Yes, <code>panic!</code> will cause an abort if it would otherwise escape from an <code>extern "C"</code> function.</p>



<a name="241999528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241999528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241999528">(Jun 08 2021 at 23:13)</a>:</h4>
<p>ok I have created <a href="https://github.com/rust-lang/rust/pull/86155">https://github.com/rust-lang/rust/pull/86155</a> with what I believe are the next steps</p>



<a name="241999605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/241999605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#241999605">(Jun 08 2021 at 23:14)</a>:</h4>
<p>I also think that a reasonable stabilization story, given that PR, would be to stabilize <code>C-unwind</code> before we change the behavior of <code>C</code>, then after awhile once that's stable we change <code>C</code>'s behavior. That would allow projects to span all three channels if necessary. After that PR <code>C</code> behaves like <code>C-unwind</code> will in the future (more or less modulo some minor details)</p>



<a name="242003510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242003510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242003510">(Jun 09 2021 at 00:12)</a>:</h4>
<p>I'll try to look at that PR soon, but from your description it sounds like exactly what's needed; thank you!</p>



<a name="242003528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242003528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242003528">(Jun 09 2021 at 00:12)</a>:</h4>
<p>(And yes, I agree that treating <code>C</code> like <code>C-unwind</code> for now is the correct path.)</p>



<a name="242004496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242004496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242004496">(Jun 09 2021 at 00:27)</a>:</h4>
<p>I haven't implemented this, but one thought I had is that we could treat <code>extern "C" { ... }</code> functions as true <code>nounwind</code> things, but <code>extern "C" fn foo() {}</code> and function pointer would all behave equivalently to <code>C-unwind</code>. That's an option where we may not lose as much perf relative today, but tbh the perf loss is pretty amorphous as "well LLVM may have to keep more landing pads" rather than "I saw this get NN% slower", so I'm not sure whether this would be worth it as a purely transitionary thing</p>



<a name="242006190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242006190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242006190">(Jun 09 2021 at 00:55)</a>:</h4>
<p>Wouldn't keeping the declarations <code>nounwind</code> preserve the bug that all cross-language unwinding is LLVM UB?</p>



<a name="242008461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242008461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242008461">(Jun 09 2021 at 01:31)</a>:</h4>
<p>indeed, yeah, so it'd be a balance between enabling that now vs preventing a hypothetical regression. I'd be wary to "enable" that though since the goal is to enable it with <code>C-unwind</code> rather than <code>C</code>, but that's just my 2c</p>



<a name="242009596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/242009596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#242009596">(Jun 09 2021 at 01:50)</a>:</h4>
<p>I would prefer to remove the known LLVM UB without fanfare or even an announcement, and continue to have it be "officially" UB. That way we may potentially save some end-users from bad behavior.</p>



<a name="243582335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243582335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243582335">(Jun 22 2021 at 21:38)</a>:</h4>
<p>hm ok I think that I am in a mire and I don't know what to do any more. While <a href="https://github.com/rust-lang/rust/pull/86155">my PR</a> has had discussion I don't think it's been actually reviewed yet? I listed a <a href="https://github.com/rust-lang/rust/pull/86155#issuecomment-865178867">few concrete questions</a> of where I think there are actually more blockers for <code>C-unwind</code> stabilization. Some of the MIR level concerns mostly just need someone to read it and say "nah that's fine" because I suspect it's benign, but there's two major issues which will require follow-ups to address:</p>
<ul>
<li>
<p>The existing of a stable <code>"C-unwind"</code> ABI breaks assumptions that <code>-Clto -Cpanic=abort</code> does. That pass specifically, today, simply removes all landing pads. This is not correct in a world where calls to <code>C-unwind</code> functions need to be caught to abort the process. That pass was designed, during the initial inception of LTO &amp; panic=abort, to get the benefit of <code>-Cpanic=abort</code>-compiled libstd without having to actually recompile libstd. I don't know what the impact would be of removing that pass but it will almost surely make some binaries larger if not a bit slower. Additionally if that pass is used to remove unwing infrastructure completely that will no longer work because landing pads will still be present</p>
</li>
<li>
<p>The <code>try</code> intrinsic I think has incorrect codegen (although I could be corrected here). I believe the intention of the intrinsic is that it catches only <em>Rust</em> exceptions but other C++-style exceptions can unwind through <code>try</code>. The Rust compiler, however, tags the <code>try</code> intrinsic with <code>nounwind</code> and that would need to get fixed.</p>
</li>
</ul>
<p>Overall I don't really know how to proceed. I feel like there's just endless discussion happening without any actual reviews or anyone weighing in on what next steps are. I'm not super keen myself on just continuing this debate, I would ideally like to proceed down a selected path.</p>



<a name="243585232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243585232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243585232">(Jun 22 2021 at 22:11)</a>:</h4>
<p>Yeah, I understand what you mean. The feature does change the panic=abort semantics in a rather subtle way, so I guess I'm not surprised by the issues cropping up, but I don't know who's qualified to do the MIR review.</p>



<a name="243627708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243627708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> hyd-dev <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243627708">(Jun 23 2021 at 09:39)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116015">Alex Crichton</span> <a href="#narrow/stream/210922-project-ffi-unwind/topic/next.20steps/near/243582335">said</a>:</p>
<blockquote>
<p>I believe the intention of the intrinsic is that it catches only <em>Rust</em> exceptions but other C++-style exceptions can unwind through <code>try</code>.</p>
</blockquote>
<p>According to <a href="https://rust-lang.github.io/rfcs/2945-c-unwind-abi.html#unresolved-questions">https://rust-lang.github.io/rfcs/2945-c-unwind-abi.html#unresolved-questions</a>, "the behavior of <code>catch_unwind</code> when a foreign exception encounters it is currently left undefined", and it might "let the exception pass through uncaught or catch some or all foreign exceptions" in the future.</p>



<a name="243671872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243671872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243671872">(Jun 23 2021 at 15:49)</a>:</h4>
<p>Oh bjorn3 actually clarified this point. The part I was worried about was <code>try</code> in <code>panic=abort</code> mode having the wrong codegen, but actually if a C++ exception enters Rust code it'll either be UB earlier (since something was marked as <code>"C"</code> when it should have been <code>"C-unwind"</code> or it would have been caught-to-abort by Rust's ABI anyway. I think that means the <code>try</code> issue is no longer an issue.</p>
<p>That still leaves, though, the <code>-Clto</code> issue and someone to sign off on the ramifications on the other MIR passes.</p>



<a name="243681276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243681276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243681276">(Jun 23 2021 at 16:59)</a>:</h4>
<p>Do you know who would be qualified to sign off on the MIR stuff, or would you like me to look into that?</p>



<a name="243696567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243696567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243696567">(Jun 23 2021 at 18:53)</a>:</h4>
<p>I do not know unfortunately who would be able to sign-off on oit</p>



<a name="243696664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243696664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243696664">(Jun 23 2021 at 18:54)</a>:</h4>
<p>My own personal reading is that the other MIR bits that look at <code>panic=abort</code> are not consequential and can be ignored, but ideally need to be updated in the future.</p>



<a name="243889655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243889655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243889655">(Jun 25 2021 at 08:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> you can put the PR r? me if you want</p>



<a name="243889686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/next%20steps/near/243889686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/next.20steps.html#243889686">(Jun 25 2021 at 08:47)</a>:</h4>
<p>I'll try to take a look today and decide what I think about the MIR changes</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>